<?php

include_once("../config.php");

//trata injection
$_POST = validaParametro($_POST);
$_GET = validaParametro($_GET);

//pega os paramentros via get, post , sessao

//trabalha com os beans e DAOS

//define qual pagina chamar de acordo com a action

//incluir aqui as classes que serao usadas

//require '../Utils/functions.php';

//if (!isset($_SESSION)) {
//session_start();
//}

/**
 * @name loginController
 * @author Fabio Baia
 * @since 22/02/2012 20:47
 * controller do login - respons�vel por fazer a autentica��o do usuario, seja ele aluno,
 * professor, funcionario ou coordenador.
 **/

$action;
$page;

$default_page = "index.php";

loginController();

/**
 * @name loginController
 * @author Fabio Baia
 * @since 22/02/2012 20:48:53
 * funcao que verifica a action e direciona para a action especifica
 **/
function loginController() {
	//$_POST = validaParametro($_POST);
	//$_GET = validaParametro($_GET);

	//fazer o tratamento aqui da codificacao utf-8, iso, etc
	if(isset($_POST["action"])){
		$action = $_POST["action"];
	}
	if(isset($_GET["action"])){
		$action = $_GET["action"];
	}



	if($action == "recuperar"){
		if(isset($_POST["usuario"])){
			$login = $_POST["usuario"];
		}

		recoveryPassword($login);

	}

	if($action == "logar"){
		//pega o usuario e a senha
		if(isset($_POST["usuario"])){
			$login = $_POST["usuario"];
		}
		
		if(isset($_POST["senha"])){
			$senha = $_POST["senha"];
		}
		
		
		login($login, $senha);
		
	}

	//adaptado para funcionar com o acesso externo
	if(isset($_SESSION["acesso_externo"]) && $_SESSION["acesso_externo"] == "true"){

// 		echo $_SESSION[user];
// 		echo "<br />";
// 		echo $_SESSION[senha];
// 		echo "<br />";
// 		echo $_SESSION[nivel_acesso];
		
		if(isset($_SESSION[nivel_acesso]) && $_SESSION[nivel_acesso] == "aluno"){
			$login = $_SESSION[user];
			$senha = $_SESSION[senha];

		}	
		
		if(isset($_SESSION[nivel_acesso]) && $_SESSION[nivel_acesso] == "professor"){
			$login = $_SESSION[usuario];
			$senha = $_SESSION[senha];					
		}
		
		login($login, $senha);

	}


	if($action == "logar_old" ){

		//primeiro zera a sessao por seguran�a
		//logout();

		//pega os dados e verifica quem esta fazendo o login

		//pega o usuario e a senha
		if(isset($_POST["usuario"])){
			$login = $_POST["usuario"];
		}
			
		if(isset($_POST["senha"])){
			$senha = $_POST["senha"];
		}
			

		//verifica qual o tipo do usuario
		$usuarioLogado = isAluno($login, $senha);
		if($usuarioLogado != false){
				
			$type = "Aluno";
			//registra log
			registraLog($usuarioLogado->getRa(), $type);
				
			$_SESSION["s_usuario_logado_type"] = $type;
			$_SESSION["s_aluno"] = serialize($usuarioLogado);
				
				
			$page = "index.php";

		}else {
			$usuarioLogado = isUsuario($login, $senha);
				
			if($usuarioLogado != false){
				$type = "Admin";
				//registra log
				registraLog($usuarioLogado->getId(), $type);

				$_SESSION["s_usuario_logado_type"] = $type;
				$_SESSION["s_usuario_logado"] = serialize($usuarioLogado);

				//obtem as permissoes do usuario logado e joga na sessao
				$permissoes = array();
				$permissoes_atuais = new UsuarioHasPermissao();
				$permissoes_atuais->usuarioId = $usuarioLogado->getId();
					
				$permissoes_atuais->find();
				while ($permissoes_atuais->fetch()) {
					$permissoes[] = $permissoes_atuais->getPermissaoId();
				}
					
				$_SESSION["s_usuario_logado_permissoes"] = $permissoes;

				$page = "home.php";
					
			}else{
				$usuarioLogado = isProfessor($login, $senha);
				if($usuarioLogado != false){
						
						
					//verifica se ele � coordenador
					if($usuarioLogado->getIscoordenador() == true){
						$type = "Coordenador";
						$page = "indexCoordenador.php";

					}else{
						$type = "Professor";
						$page = "indexProfessor.php";
					}
						
					//registra log
					registraLog($usuarioLogado->getId(), $type);
						
					$_SESSION["s_usuario_logado_type"] = $type;
					$_SESSION["s_usuario_logado"] = serialize($usuarioLogado);
						
						

				}else{
					$usuarioLogado = isFuncionario($login, $senha);

					if($usuarioLogado != false){
						$type = "Funcionario";
						//registra log
						registraLog($usuarioLogado->getId(), $type);
							
						$_SESSION["s_usuario_logado_type"] = $type;
						$_SESSION["s_usuario_logado"] = serialize($usuarioLogado);

						$page = "indexFuncionario.php";
							
					}
				}
			}
		}




		//pega o processo de avalia��o ativo
		//pega dados do processo de avaliacao
		$processo = new ProcessoAvaliacao();

		$processo->where("ativo='Ativo'");
		$processo->find();
		$processo->fetch(true);
		// $processo->get(1);

		$_SESSION["s_processo"] = serialize($processo);
		// 		$_SESSION["s_periodo"] = "2/2011";
		$_SESSION["s_periodo"] = "1/2012";
			
		redirectTo($page);
			
			
		// 			isProfessor();
			
		// 			isCoordenador();
			
		// 			isFuncionario();

			
	}

	//cria um array pra armazenar as questoes com as respectivas notas
	//$questoesNotas = array();
	//$cont = 0;

	if($action == "logout"){
		logout();
			
	}

}

/**
 * @name login
 * @author Fabio Baía
 * @since 05/08/2012 16:45:45
 * insert a description here
 **/
function login($login, $senha) {
	include_once("../db_connect.php");

	$sql = "SELECT * FROM ".$prefixo."usuario WHERE login = '".$login."' AND senha = '".md5($senha)."'";
	
	$result = mysql_query($sql);
	
	
	while($dados = mysql_fetch_assoc($result)){
		$user_id = $dados["id"];
		$user_name = $dados["nome"];
		$user_mail = $dados["email"];
		$user_photo = $dados["foto"];
		$user_nivel = $dados["nivel"];
	}
	$contagem = mysql_num_rows($result);
	 
	if ( $contagem == 1 ) {
		$_SESSION["req_user_login"] = $login;
		$_SESSION["req_user_senha"] = $senha;
		$_SESSION["req_user_id"] = $user_id;
		$_SESSION["req_user_name"] = utf8_encode($user_name);
		$_SESSION["req_user_mail"] = $user_mail;
		$_SESSION["req_user_photo"] = $user_photo;
		$_SESSION["req_user_nivel"] = $user_nivel;
		
		
		//verifica se tem alguma info do sistema e joga na sessao
		$_SESSION["devmake_info"] = 'Esta é uma versão <i>Beta</i> do Eventos Acadêmicos. <a href="">Saiba mais.</a>';
		
		if(isset($_GET["url"]) && $_GET["url"] != ""){
			header("Location: ".$_GET["url"]." ");
		}else{
			header("Location: ../usuarios.php");
		}
		
  	}else{
		$_SESSION["mensagem_erro"] = "Login Inválido!";
		//header("Location: ../login.php?msg_e=Login Inválido.");
		header("Location: ../login.php");
	}
	
	//redirectTo($page);
}

/**
 * @name logout
 * @author Fabio Ba�a
 * @since 23/02/2012 18:30:26
 * desconecta da sessao e destroi os dados da mesma
 **/
function logout() {
	//Destruir sessao
	// primeiro destru�mos os dados associados � sess�o
	//$_SESSION = array();

	// destru�mos ent�o o cookie relacionado a esta sess�o
	if(isset($_COOKIE[session_name()])){
		setcookie(session_name(), '', time() - 1000, '/');
	}
	
	// finalmente destruimos a sess�o
	//session_destroy();

	//fim da destruicao

	//pega a mensagem de status
	$_SESSION["mensagem"] = "Você fez logout agora";


	//header("Location: login.php?msg=Voc� fez o logout agora.");
	header("Location: ../login.php");

}


/**
 * @name registraLog
 * @author Fabio Baía
 * @since 22/05/2012 16:21:19
 * registra no banco de dados o nome do usuario que logou, hora de acesso e ip
 **/
function registraLog($usuarioId, $tipoUsuario) {
	$ip = $_SERVER['REMOTE_ADDR'];
	$agora = date('Y-m-d H:i:s');

	$log = new Log();
	$log->setId(0);
	$log->setUsuario($usuarioId);
	$log->setTipoUsuario($tipoUsuario);
	$log->setHora($agora);
	$log->setIp($ip);

	$log->save();
}


/**
 * @name recoveryPassword
 * @author Fabio Baía
 * @since 03/08/2012 13:14:08
 * funcao para recuperação de senha
 **/
function recoveryPassword($param) {

	$usuario = new Aluno;
	$usuario->login = $param;

	$qtd = $usuario->find(true);
	//encontra o usuario
	//pega o nome dele, extrai o primeiro nome
	//concatena o ra+primeironome+@faculdadeunicampo.edu.br


	//msg os dados de acesso foram enviados para <<email do individuo>>

	if($qtd == 0){
		// 		return false;
		$msg_status = "Usuário inválido. Tente novamente.";
		$page = "recuperar_senha.php";
	}
	else{
		$nome = explode(" ", $usuario->getNome());
		$primeiroNome = $nome[0];

		//remove os acentos pra montar o endereco de email corretamente
		$primeiroNome = strtolower($primeiroNome);
		$primeiroNome = ereg_replace("[áàâãª]","a",$primeiroNome);
		$primeiroNome = ereg_replace("[éèê]","e",$primeiroNome);
		$primeiroNome = ereg_replace("[óòôõº]","o",$primeiroNome);
		$primeiroNome = ereg_replace("[úùû]","u",$primeiroNome);
		$primeiroNome = str_replace("ç","c",$primeiroNome);

		$to = $primeiroNome.$usuario->getRa()."@faculdadeunicampo.edu.br";

		//envia email
		$assunto = "Dados para acessar o Sistema de Avaliação";
		$msg = "Seus dados de acesso são: <br />";
		$msg .= "Usuario: ".$usuario->getLogin()."<br />";
		$msg .= "Senha: ".$usuario->getSenha()."<br />";

		$msg .= "<br />Atenciosamente,<br />";
		$msg .= "Faculdade Unicampo.<br />";


		$status_envio = sendEmail($to, $assunto, $msg);

		$msg_status;
		if ($status_envio!=true){
			$msg_status = "Ocorreu um erro ao enviar a mensagem. Tente novamente mais tarde.";
			//die();
		}else{
			$msg_status = "Os dados de acesso ao Sistema de avaliação foram enviados para o e-mail: ";
			$msg_status .= "<br />";
			$msg_status .= "<span>".$to."</span>";
		}

		$page = "login.php";
	}

	//redireciona para pagina de login
	$_SESSION["mensagem"] = $msg_status;

	redirectTo($page);

}

/**
 * @name sendEmail
 * @author Fabio Baía
 * @since 03/08/2012 14:10:40
 * envia email
 **/
function sendEmail__($to, $assunto, $msg) {

	$headers = "MIME-Version: 1.0\r\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
	$headers .= "From: UNICAMPO <suporte.ti@faculdadeunicampo.edu.br> \r\n";

	//debug
	//$to = "fabio.ti@faculdadeunicampo.edu.br";

	$send_check=mail($to,$assunto,$msg,$headers);

	return $send_check; 

}


//}

?>